package 集合;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Random;
import java.util.Set;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.regex.Matcher;
/*
 * 1.集合的遍历方式
 * 2.并发修改问题
 * 3.可变参数
 */
public class Test
{
public static void main(String [] args)
{
	
	
	//并发修改（删除名字中含有李的）
//ArrayList<String> a=new ArrayList<>();
//a.add("张三");
//a.add("李四");
//a.add("李华");
//a.add("张三");
//a.add("王五");
//a.add("李丽");
//System.out.println(a);
//
////1.使用迭代器
//Iterator it=a.iterator();
//while(it.hasNext())
//{
//	String name=(String)it.next();
//	if(name.contains("李"))
//	{
//		it.remove();//处理并发修改问题
//	}
//}
//	
////2.使用for循环
//for(int i=0;i<a.size();i++)
//{
//	String name=a.get(i);
//	if(name.contains("李"))
//	{
//		a.remove(name);
//		i--;
//	}
//}
//System.out.println(a);


	
	
//Collection集合遍历方式
//	 Collection<String> c=new ArrayList<>();//创建集合
//	 c.add("张三");							//添加数据
//	 c.add("李四");
	 //遍历集合
	
	 //1.
//	 Iterator i=c.iterator();
//	 while(i.hasNext())
//	 {
//		 Object tmp=i.next();
//		 System.out.println(tmp);
//	 }
	 	 
	 //2.
//	 for(String s:c)
//	 {
//		 System.out.println(s);
//	 }
	  
	 //3.lambda表达式
//	 c.forEach(new Consumer<String>() {				//底层原理
//
//		@Override
//		public void accept(String t) {
//			// TODO Auto-generated method stub
//			System.out.println(t);
//		}
//	 
//	 });
	 //c.forEach(t->System.out.println(t));				//简化后的
	 //4.for循环(适用于有索引的集合）
	 

	 
//前置：可变参数
//	numble(10);
//	numble(new int[] {1,2,3,4,5});
	
	
	 
	 
	 
	//Map集合的遍历
//	HashMap<String,Integer> hs=new HashMap<>();
//	hs.put("铅笔",2);
//	hs.put("橡皮",3);
//	hs.put("直尺",4);
//	hs.put("狗熊",7);
//	System.out.println(hs);
//	System.out.println("---------------------------------");
//	//1.
//	Set<String> keys=hs.keySet();
//	for(String data:keys)
//	{
//		int num=hs.get(data);
//		System.out.println(data+"-->"+num);
//	}
	
	//2.
//	Set<Entry<String, Integer>> entry=hs.entrySet();  //将hs转成Entry<String,Integer>类型的数据
//	for(Entry<String, Integer> data:entry)
//	{
//		System.out.println(data);
//	}
	
	//3.
//	Set entryset=hs.entrySet();							//将两个对象合并成一个对象
//	Iterator it=entryset.iterator();
//	while(it.hasNext())
//	{
//		Map.Entry entry=(Map.Entry)(it.next());
//		Object name=entry.getKey();
//		Object value=entry.getValue();
//		System.out.println(name+"--->"+value);
//		}
	 
	 //4.lambda表达式
//	hs.forEach(new BiConsumer<String,Integer>(){			//底层原理
//
//		@Override
//		public void accept(String t, Integer u) {
//			// TODO Auto-generated method stub
//			System.out.println(t+"--->"+u);
//		}
//		
//	}
//			);
//	 hs.forEach((k,v)->{									//简化后的lambda表达式
//		 System.out.println(k+"--->"+v);
//	 });
}

	
public static void numble(int...num)
{
	System.out.println(Arrays.toString(num));
}
}

